package io.gitee.xyuesheng.day08.Thread;

public class Singleton {
    //    private static Singleton instrance = new Singleton();
    private static Singleton instrance = null;

//    public  static Singleton getInstrance(){
//        return instrance;
//    }

    public Singleton() {
        System.out.println("实例被创建");
    }

    //instrance实例在第一次调用getInstrance的时候才创建
    //如果没有同步，instrance会被创建多次
    //第一次创建实例的时候，需要同步
    public static synchronized Singleton getInstrance() {
        //双重检查
        if (instrance == null) {
            synchronized (Singleton.class) {//使用类的字节码对象作为锁
                if (instrance == null) {
                    instrance = new Singleton();//延迟初始化
                }
            }
        }

        return instrance;
    }

}
